导航
导航
Posts List
  1. Concept
  2. Code Style
  3. Key Point

Shell Code Points List

Concept
  • 符号
    • 单引号:’’
    • 双引号:””
    • 花括号:{}
    • 反括号:``
    • 双括号:(())
    • $
    • #
    • *
    • \
    • $?:表示保留上一个命令的执行结果
    • $0:函数名
    • $1:函数的第一个参数
    • 回车/分号:作为一行命令结束的标志。
    • 管道(|),逻辑与(&&),逻辑或(||):连接命令的特殊字符
  • 变量
    • 定义变量
  • 数组
  • 运算符
    • 算数运算符
    • 关系运算符
      • 大于:-lt
      • 小于:-gt
      • 等于:-eq
      • 与:-a
      • 或:-o
  • 条件判断符
  • 函数
    • 定义
    • 调用
    • 返回值
  • 关键命令
    • expr
    • read
    • let
    • sed
    • grep
    • curl
Code Style
  • 变量
    • 变量名大小写不限,但惯例上采用全大写的方式
    • 定义变量时,=的前后都不能有空格
Key Point
  • 执行顺序

    • 别名:alias
    • 关键字:keyword
    • 函数:function
    • 内建命令:built in
    • 哈希索引:hash
    • 外部命令:command
  • 正则表达式

    描述字符串结构模式的表达方法。正则表达式可以用/包围起来表示开始和结束。

    • 使用场景:(字符串)

      • 复杂字符串的搜索,替换
      • 字符串验证
    • 元字符(metacharacter):正则表达式中规定的特殊字符,具有特殊指代的字符

      • . :匹配除了换行符以外的任意字符(字符)
      • : 前面的内容可以连续重复使用任意次(数量)
      • +: +前面的内容可以连续重复一次或多次(数量)
      • ? :加在字符限定符后面时,表示重复0次或一次(数量);加在其他数量匹配符后面时,表示懒惰匹配符。
      • {n}:重复n次
      • {n,}:重复n次或更多次
      • {n,m}:重复n到m次
      • \n:换行符
      • ^ :匹配字符串的开始(位置)
      • $ :匹配字符串的结束(位置)
      • \b:代表单词的开头或结尾(位置)==>英文的单词是由空格,标点符号或者换行来分隔的,但是\b并不匹配这些单词分隔字符中的任何一个,它只匹配一个位置。
      • \B:代表不是单词的开头或结尾(位置)
      • \d:匹配一位数字(字符)
      • \D:匹配任意一位非数字(字符)
      • \w:匹配字母或数字或下划线(字符)
      • \W:匹配任意不是字母,数字,下划线(字符)
      • \s:匹配任意的空白符,包括空格,制表符(Tab),换行符,中文全角空格。(字符)
      • \S:匹配任意非空白符。(字符)
      • \:转义字符
      • / :正则表达式的开始和结束标志。
    • 自定义字符类别(集合)

      []:在方括号中枚举出来,表示匹配方括号中的任意一个。

      [^]:在方括号中枚举出来,表示匹配除了方括号中的任意一个。

    • 分支条件(多个条件的或)

      |:连接多个判断条件

    • 零宽断言

      表示的含义是位置,确定的满足某个条件的位置。

      • 零宽度正预测先行断言:(?=exp),表示的是,字符串的某个位置的后面字符串模式满足exp。
      • 零宽度正回顾后发断言:(?<=exp),表示的式,字符串的某个位置的前面字符串模式满足exp。
      • 零宽度负预测先行断言:(?!=exp),表示的是,字符串的某个位置的后面字符串模式不满足exp。
      • 零宽度负回顾后发断言:(?<!exp),表示的式,字符串的某个位置的前面字符串模式不满足exp。
    • 匹配规格

      • 懒惰/贪婪规则:默认是贪婪匹配,即匹配最多的字符;加?后,转变为懒惰匹配,匹配最少的字符。
      • 最先匹配:匹配最先匹配到的字符串。
    • 常用的局部正则表达式

      • \s+:多个空格
      • ….\b:从单词的右边开始匹配,或直观的来说,是匹配的字符串的右边是分隔符,即空格,标点符号或换行符。
    • 正则表示式选项

      • 大小写选项。
      • 单行
      • 多行
      • 忽略空白